<?php
namespace Lib;

/**
 * 配置管理类
 * @author yuanji<fenglangyj@139.com>
 */
class Config
{
    // 应用的初始化目录，作为加载类文件的参考目录
    protected static $_appInitPath = '';
    // 应用环境配置
    protected static $_ini_arr = [];

    /**
     * 设置应用目录
     * @param string $root_path
     * @return void
     */
    public static function setRootPath($root_path) {
        if (!file_exists($root_path)){
            exit("root_path ($root_path) not exists!");
        }
        self::$_appInitPath = $root_path;
    }

    /**
     * 获取应用初始化目录
     * @return string
     */
    public static function getRootPath() {
        if (empty(self::$_appInitPath)){
            self::$_appInitPath = realpath('.');
        }
        return self::$_appInitPath ;
    }

    /**
     * 解析ini文件,检结果写入环境变量中
     * @return null
     */
    private static function parseIniFile(){
        $ini_file = self::getRootPath().DIRECTORY_SEPARATOR.'.ini';
        if (!is_file($ini_file)) return NULL;
        $_ini_arr = parse_ini_file($ini_file,true);
        if ($_ini_arr === false)return NULL;
        self::$_ini_arr = $_ini_arr;
    }

    /**
     * 获取环境配置信息
     * @param $key
     * @param null $default
     * @return mixed|null
     */
    public static function ini($key,$default=NULL){
        if (empty(self::$_ini_arr)){
            self::parseIniFile();
        }
        return isset(self::$_ini_arr[$key])?self::$_ini_arr[$key]:$default;
    }

}
